<?php
/**
* @package   auto_occasion
* @subpackage essais
* @author    your name
* @copyright 2011 your name
* @link      http://www.yourwebsite.undefined
* @license    All rights reserved
*/


/**
 * Classe pour la gestion des gammes
 */
class BoGammeCtrl extends jController {
    
public $pluginParams = array(
        '*' => array('auth.required' => true),
     );
    
    /**
    * Affiche la gestion du chapeau
    */
    function index() {
        $rep = $this->getResponse('html');
        $rep->menusActifs = adminHtmlResponse::MENU_FICHES_MODELES ;

        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('commun~common') ;


        $iEssaiId = $this->intParam('iId') ;
        $toParams['iEssaiId'] = $iEssaiId;
        $toParams['oEssai'] = ($iEssaiId) ? essaisSrv::getById($iEssaiId) : common::init('ao_essais') ;

        if ($toParams['oEssai']->ess_zChapeau) {
            $content = $toParams['oEssai']->ess_zChapeau;
            $filename = JELIX_APP_WWW_PATH . PATH_ESSAI_CHAPEAU . $content;
            if (strpos($content, ".txt") !== false) {
                //récupération du contenu du fichier et le mettre dans la variable ess_zChapeau x :gamme-porsche-1019663438.txt
                jClasses::inc('commun~toolsFile');
                $toParams['oEssai']->ess_zChapeau = toolsFile::get($filename);
            }
        }
        //création repertoire  si n'existe pas et copie fichiers source dans cee répertoire créé
        essaisSrv::getDirectory($toParams['oEssai']->ess_iMarqueId,'','Gammes');

        $marque = common::chargeParId($toParams['oEssai']->ess_iMarqueId, "ao_marque");

        $name = 'Gammes/'.$marque->marque_libelle;
     //   $name = $marque->marque_libelle.'_'.$toParams['oEssai']->ess_iMarqueId.'_';
        $path = PATH_ESSAI_MIN.$name;

        $rep->bodyTpl = 'essais~BoGammeIndex';

        $rep->body->assign($toParams) ;
        $rep->body->assign('path_img',$path) ;
        $rep->body->assignZone ('oZoneGammeLeft', 'essais~BoGammeLeft', array('iId' => $iEssaiId)) ;


        return $rep;
    }

    /**
    * Affiche la gestion des chapitres
    */
    function chapitre() {
        $rep = $this->getResponse('html');
        $rep->menusActifs = adminHtmlResponse::MENU_FICHES_MODELES ;

        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('commun~common') ;

       
        $iEssaiId     = $this->intParam('iId') ;
        $chap_name_id = $this->intParam('chap_name_id') ;
        $type         = $this->intParam('type') ;


        $toParams['iTypeId']       = $this->intParam('iTypeId') ;
        $toParams['chapitre']      = ($chap_name_id) ? chapitreSrv::loadChapter($iEssaiId, $chap_name_id,1) : array(common::init('ao_essais_chapitre')) ;
        $toParams['oEssai']        = ($iEssaiId) ? essaisSrv::getById($iEssaiId) : common::init('ao_essais') ;

        $toParams['chapitreTitre'] = chapitreSrv::getChapterTitre() ;
        //pour lister les chapitres autres que Habitacle&carros, Confort et comportement ...
        $toParams['chapitreAutre'] = chapitreSrv::getChapterOther() ;

        $toParams['chapImg']       = explode(';',$toParams['chapitre'][0]->chap_img);

        $marque = common::chargeParId($toParams['oEssai']->ess_iMarqueId, "ao_marque");
        $name = 'Gammes/'.$marque->marque_libelle;
        $path = PATH_ESSAI_MIN.$name;
        
         // photos  illustrations
        $photo =  array();
        jClasses::inc('commun~toolsFile');
        
         $toParams['photos'] = $photo;

         if ($toParams['oEssai']->ess_iModelId == '0') 
             $toParams['path'] = PATH_ESSAI_MIN . $marque->marque_libelle.$modele->modele_libelle.'_'.$toParams['oEssai']->ess_iMarqueId.'_';
         else $toParams['path'] = $path;
         $toParams['photosPath'] = PATH_ESSAI . $name;


        $rep->bodyTpl = 'essais~BoModeleChapitre';
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/jquery-ui.css');
		$rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/ui.multiselect.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/infiniteCarousel.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/annonceDeposer.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/illustrationChapitres.css');

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/jquery-ui.min.js');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/jquery.localisation-min.js');        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/ajaxupload.3.5.js');
   		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/entreprise.js');
   		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/illustrationChapitres.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/infiniteCarousel.js');

        $rep->body->assign($toParams) ;
        $rep->body->assign('type', $type) ;
        $rep->body->assign('path_img', $path) ;

        $rep->body->assignZone ('oZoneModeleLeft', 'essais~BoGammeLeft', array('iId' => $iEssaiId)) ;

        return $rep;
    }


    /**
    * Affiche la gestion des version
    */
    function version() {
        $rep = $this->getResponse('html');
        $rep->menusActifs = adminHtmlResponse::MENU_FICHES_MODELES ;

        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('essais~versionSrv') ;
        jClasses::inc('commun~common') ;

        $iEssaiId  = $this->intParam('iId') ;
        $versionId = $this->intParam('versionId') ;
        $toParams['gammeModeleId'] = $this->intParam('gammeModeleId') ;

        $toParams['version'] = ($versionId) ? common::chargeParId($versionId, 'essai_version') : common::init('essai_version');
        $toParams['oEssai']  = ($iEssaiId) ? essaisSrv::getById($iEssaiId) : common::init('ao_essais') ;

        $rep->bodyTpl = 'essais~BoGammeVersion';

        $rep->body->assign($toParams) ;
        $rep->body->assignZone ('oZoneGammeLeft', 'essais~BoGammeLeft', array('iId' => $iEssaiId)) ;


        return $rep;
    }

    /**
    * Affiche la gestion des modèles
    */
    function modele() {
        $rep = $this->getResponse('html');
        $rep->menusActifs = adminHtmlResponse::MENU_FICHES_GAMMES ;

        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('commun~common') ;
        jClasses::inc('marqueModele~modeleSrv') ;
        jClasses::inc('essais~fiabiliteSrv') ;
        jClasses::inc('essais~versionSrv') ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/jquery-ui.css');
		$rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/ui.multiselect.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/infiniteCarousel.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/annonceDeposer.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/illustrationChapitres.css');

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/jquery-ui.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/ajaxupload.3.5.js');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/jquery.localisation-min.js');
   		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/illustrationChapitres.js');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/infiniteCarousel.js');

        // id d'une marque : alpha romeo , hundai etc ...
        $iEssaiId       = $this->intParam('iId') ;
        $iGammeModeleId = $this->intParam('idGammeModele') ;

        $toParams['oEssai']               = ($iEssaiId) ? essaisSrv::getById($iEssaiId) : common::init('ao_essais') ;
        $gammeModeleDetail                = ($iGammeModeleId) ? chapitreSrv::loadChapter_($iEssaiId, $iGammeModeleId,0) : common::init('ao_essais_chapitre') ;
        $toParams['gammeModeleDetail']    = ($iGammeModeleId) ? $gammeModeleDetail[0] : $gammeModeleDetail;
        $toParams['listeModeleParMarque'] = modeleSrv::getAllOrderedModeleByMarqueId($toParams['oEssai']->ess_iMarqueId) ;
        $toParams['fiabilite']            = ($iGammeModeleId) ? fiabiliteSrv::getByIdGammeModele($iGammeModeleId) : common::init('essai_fiabilite');
        $toParams['version']              = ($iGammeModeleId) ? versionSrv::getByIdGammeModele($iGammeModeleId) : common::init('essai_version');
        
        $marque = common::chargeParId($toParams['oEssai']->ess_iMarqueId, "ao_marque");
        $name = 'Gammes/'.$marque->marque_libelle;
        $path = PATH_ESSAI_MIN.$name;

        $rep->bodyTpl = 'essais~BoGammeModele';

        $rep->body->assign($toParams) ;
        $rep->body->assign('path_img', $path) ;
        $rep->body->assignZone ('oZoneGammeLeft', 'essais~BoGammeLeft', array('iId' => $iEssaiId)) ;

        return $rep;
    }

    /**
     * Sauvegarde en base des modifs d'essais
     */
    function save () {
        
        jClasses::inc('essais~essaisSrv') ;
        
        $toParams = $this->params() ;

        essaisSrv::store($toParams) ;
        
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'essais~BoFiches:index' ;
        $rep->params = array('iTypeId' => $toParams['ess_iTypeId']) ;
        
        return $rep;
    }

    /**
     * Sauvegarde en base des modèles d'une gamme
     */
    function saveModele () {

        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('commun~common') ;
       // jClasses::inc('marqueModele~modeleSrv');
        
        $toParams      = $this->params();
        $gammeModeleId = $toParams['gammeModeleId'];;
        $chapId        = $toParams['chapId'];


        $toParams['chap_modele']         = $toParams['modele-id'];
        $toParams['chap_titre']          = $toParams['modele-titre'];
        $toParams['chap_content']        = $toParams['modele-txt'];
        // Récupération de l'image stockée dans le hidden "photo-annonce"
        $toParams['chap_img']            = $toParams['photo-annonce'];
        $toParams['type']                = 1;
        $toParams['chap_name_id']        = $toParams['chapNameId'];
        $toParams['chap_id']             = $chapId;
 

        if (!$toParams['chap_id']) {
            $chapitreId = chapitreSrv::ajouter($toParams) ;
            chapitreSrv::insertEssaiChapitre($toParams['ess_id'] , $chapitreId);
        } else {
            $chapitreId = chapitreSrv::modifier($toParams) ;
        }
        
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'essais~BoGamme:modele' ;
        $rep->params = array('iId'=>$this->intParam('ess_id'), 'idGammeModele'=>$gammeModeleId) ;
        
        return $rep;
    }

    /**
     * Sauvegarde en base d'une version d'une gamme
     */
    function saveVersion () {
        
        jClasses::inc('essais~versionSrv') ;
        jClasses::inc('commun~common') ;

        $gammeModeleId  = $this->intParam('gammeModeleId', 0);
        $version_id     = $this->intParam('version_id', 0);

        $version = common::init('essai_version');

       
        $version->name               = $this->stringParam('nom-version', '');
        $version->content            = $this->stringParam('contenu-version', '');
        $version->media              = $this->stringParam('media', '');
        $version->ess_gammeModele_id = $gammeModeleId;
        $version->version_id         = $version_id;

        if ($version_id) {
            versionSrv::modifier($version) ;
        } else {
            versionSrv::ajouter($version) ;
        }
        
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'essais~BoGamme:modele' ;
        $rep->params = array('iId' => $this->intParam('ess_id'), 'idGammeModele'=>$gammeModeleId) ;
        
        return $rep;
    }


    /**
     * Sauvegarde en base la fiabilité d'une gamme
     */
    function saveFiabilite () {
        
        jClasses::inc('essais~fiabiliteSrv') ;
        jClasses::inc('commun~common') ;

        $gammeModeleId = $this->intParam('gammeModeleId', 0);
        $fiabiliteId = $this->intParam('fiabiliteId', 0);

        $fiabilite = common::init('essai_gamme_modele');

      
        $fiabilite->ess_gammeModele_id = $gammeModeleId;
        $fiabilite->name               = $this->stringParam('fiabilite-name');
        $fiabilite->content            = $this->stringParam('fiabilite-txt');
        $fiabilite->fiabilite_id       = $fiabiliteId;

        if ($fiabiliteId) {
            fiabiliteSrv::modifier($fiabilite) ;
        } else {
            fiabiliteSrv::ajouter($fiabilite) ;
        }
        
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'essais~BoGamme:modele' ;
        $rep->params = array('iId' => $this->intParam('ess_id'), 'idGammeModele'=>$gammeModeleId) ;
        
        return $rep;
    }

     /**
    *Fonction pour réordonner les modèles de gamme
    */
    function reOrder() {
        
        jClasses::inc('essais~gammeModeleSrv') ;

        $postedParams = $this->params() ;

        $rep = $this->getResponse('text') ;
        $rep->content = gammeModeleSrv::reOrder($postedParams) ;

        return $rep;
    }

        /**
    *Fonction pour réordonner les chapitres de gamme
    */
    function reOrderChapitre() {
        
        jClasses::inc('essais~chapitreSrv') ;

        $postedParams = $this->params() ;

        $rep = $this->getResponse('text') ;
        $rep->content = chapitreSrv::reOrder($postedParams) ;

        return $rep;
    }

    /**
    * Supprime un chapitre
    */
    function supprChapitre() {
        $rep = $this->getResponse('redirect');
        jClasses::inc('commun~common');

        $chapId  = $this->intParam('chapId');
        $essaiId = $this->intParam('essaiId');
        $idLink  = $this->intParam('idLink');

        // suppression dans la table ao_essais_chapitre 
        common::supprimer($chapId, 'ao_essais_chapitre');


        $rep->action = 'essais~BoGamme:index';
        $rep->params = array('iId' => $essaiId) ;
        return $rep;
    }
    /**
    * Supprime un modele d'une gamme
    */
    function supprModele() {
        $rep = $this->getResponse('redirect');
        jClasses::inc('commun~common');

        $chapId  = $this->intParam('chapId');
        $essaiId = $this->intParam('essaiId');

        // suppression dans la table ao_essais_chapitre 
        common::supprimer($chapId, 'ao_essais_chapitre');

        $rep->action = 'essais~BoGamme:index';
        $rep->params = array('iId' => $essaiId) ;
        return $rep;
    }

}